/**  
 * @Title:  PropertiesUtils.java   
 * @Package com.sgcc.ylkj.util   
 * @author: zhangcunwei
 * @date:   2020-2-18 下午1:48:45   
 * @version V5.0.0 
 */
package com.zcw.util;

/**   
 * @ClassName:  PropertiesUtils   
 * @Description:PropertiesUtils
 * @author: zhangcunwei
 * @date:   2020-2-18 下午1:48:45   
 */
import java.io.InputStream;
import java.util.Properties;

/**
 * 获取properties文件属性值 适用于单文件
 * 
 * @author Administrator
 * 
 */
public class PropertiesUtils {
	
	public static void main(String[] args) {
		System.out.println(PropertiesUtils.getProperty("downloadpath"));
	}

	private static String defaultPropertiesFileName = "default.properties";
	private static Properties ppts = new Properties();

	/**
	 * 获取properties文件指定key的属性值
	 * 
	 * @param key
	 * @return
	 */
	public final static String getProperty(String key) {
		Properties ppts = getProperties(defaultPropertiesFileName);
		return ppts == null ? null : ppts.getProperty(key);
	}

	/**
	 * 获取properties文件所有的属性值
	 * 
	 * @param propertyFilePath
	 * @return
	 */
	public final static Properties getProperties(String propertyFilePath) {
		if (propertyFilePath == null) {
			return null;
		}
		if (ppts == null || ppts.size() == 0) {
			ppts = loadPropertyFile(propertyFilePath);
		}
		return ppts;
	}

	/**
	 * 从src根目录下加载properties文件
	 * 
	 * @param propertyFilePath
	 * @return
	 */
	private static Properties loadPropertyFile(String propertyFilePath) {
		InputStream is = PropertiesUtils.class.getClassLoader().getResourceAsStream(propertyFilePath);
		if (is == null) {
			return null;
		}
		Properties ppts = new Properties();
		try {
			ppts.load(is);
			return ppts;
		} catch (Exception e) {
			return null;
		}
	}
}
